/*   
 * Copyright (C) 2009 2DAI
 * 
 * Este programa es Software Libre; usted puede redistribuirlo
 * y/o modificarlo bajo los términos de la "GNU General Public
 * License" como lo publica la "FSF Free Software Foundation",
 * o (a su elección) de cualquier versión posterior.
 * 
 * Este programa es distribuido con la esperanza de que le será
 * útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía
 * implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en
 * particular. Vea la "GNU General Public License" para más
 * detalles. 
 *
 * Usted debe haber recibido una copia de la "GNU General Public
 * License" junto con este programa, si no, escriba a la "FSF
 * Free Software Foundation, Inc.", 59 Temple Place - Suite 330,
 * Boston, MA  02111-1307, USA.
 */
 
package on
import java.sql.Time

/**
 * Author: Daniel Granados
 * Colaborated: Pablo Martinez Piles
 */
public class Record {
    String localSocial, liga, categoria, mesa;
    String delegadoLocal, delegadoVisitante, entrenadorLocal;
    String entrenadorVisitante, equipoGanador;
    String games_winner,games_result;
    String local_social;
    Referees arbitro;
    Team equipoLocal,equipoVisitante;
    int id;
    Players jugadorA,jugadorB,jugadorC,jugadorX,jugadorY,jugadorZ,doblesA,doblesB,doblesY,doblesZ;
    //array de resultados
    String[][] results= new String [7][5];
    boolean verified; 
    Date dia;
    Time hora;
    public setResultados(String[] resultados,int indice){
        for(int cont=0;cont< resultados.length;cont++){
            results[indice][cont]=resultados[cont];
        }
    }

    /**
     *
     *@param partido el numero de partido
     */
    public String[] getInfoPartido(int partido){
        //Se comprueba que el partido esta entre 0 y 6 (Los siete partidos)
        if(partido>=0 && partido <=6){
            String[] datos;
            //Si el partido es el 3 (4º partido el de dobles)
            if(partido==3){
                datos = new String[14];
                datos[0]=doblesA.getNombre();
                datos[1]=Integer.toString(doblesA.getNumLicencia());
                datos[2]=doblesY.getNombre();
                datos[3]=Integer.toString(doblesY.getNumLicencia());

                datos[4]=doblesB.getNombre();
                datos[5]=Integer.toString(doblesB.getNumLicencia());
                datos[6]=doblesZ.getNombre();
                datos[7]=Integer.toString(doblesZ.getNumLicencia());

                datos[8]=results[partido][0];
                datos[9]=results[partido][1];
                datos[10]=results[partido][2];
                datos[11]=results[partido][3];
                datos[12]=results[partido][4];
                datos[13]=resultadoPartido(partido);
                return datos;
            }//El resto de partidos
            else{
                datos = new String[10];
                datos = jugadoresPartidoIndividual(datos,partido);

                datos[4]=results[partido][0];
                datos[5]=results[partido][1];
                datos[6]=results[partido][2];
                datos[7]=results[partido][3];
                datos[8]=results[partido][4];
                datos[9]=resultadoPartido(partido);
                return datos;
            }
        } else {
            return null;
        }
    }

    private String resultadoPartido(int partido){
        String aux;
        int uno;//Se guarda el resultado de un partido del equipo local
        int dos;//Se guarda el resultado de un partido del equipo visitante
        int resultado1 = 0;//Se guarda el resultado final del equpo local
        int resultado2 = 0;//Se guarda el resultado final del equpo visitante
        for(int x = 0; x<5; x++){
            aux=results[partido][x];
            uno = Integer.parseInt(aux.substring(0,aux.indexOf('/')));
            dos = Integer.parseInt(aux.substring(aux.indexOf('/')+1));
            if (uno > dos){
                resultado1 = resultado1+1;
            }else{
                resultado2=resultado2+1;
            }
        }
        aux = resultado1 + "/" +resultado2;
        return aux;
    }

    /**
     *Retorna los nombre y nº de licencia de los jugadores
     * de los partidos individuales
     */
    private String[] jugadoresPartidoIndividual(String[] datos, int partido){
        if(partido==0){
            datos[0]=jugadorA.getNombre();
            datos[1]=Integer.toString(jugadorA.getNumLicencia());
            datos[2]=jugadorY.getNombre();
            datos[3]=Integer.toString(jugadorY.getNumLicencia());
        } else if(partido==1){
            datos[0]=jugadorB.getNombre();
            datos[1]=Integer.toString(jugadorB.getNumLicencia());
            datos[2]=jugadorX.getNombre();
            datos[3]=Integer.toString(jugadorX.getNumLicencia());
        } else if(partido==2){
            datos[0]=jugadorC.getNombre();
            datos[1]=Integer.toString(jugadorC.getNumLicencia());
            datos[2]=jugadorZ.getNombre();
            datos[3]=Integer.toString(jugadorZ.getNumLicencia());
        } else if(partido==4){
            datos[0]=jugadorA.getNombre();
            datos[1]=Integer.toString(jugadorA.getNumLicencia());
            datos[2]=jugadorX.getNombre();
            datos[3]=Integer.toString(jugadorX.getNumLicencia());
        } else if(partido==5){
            datos[0]=jugadorC.getNombre();
            datos[1]=Integer.toString(jugadorC.getNumLicencia());
            datos[2]=jugadorY.getNombre();
            datos[3]=Integer.toString(jugadorY.getNumLicencia());
        } else if(partido==6){
            datos[0]=jugadorB.getNombre();
            datos[1]=Integer.toString(jugadorB.getNumLicencia());
            datos[2]=jugadorZ.getNombre();
            datos[3]=Integer.toString(jugadorZ.getNumLicencia());
        }
        return datos;
    }

    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("Nº Acta: "+id+"\n Acta del encuentro celebrado en: "+localSocial+"\n"+
        "El día "+dia+"\n"+
        "------------------------------------------------------------------------------------------\n");
        sb.append("Local social: "+localSocial+"\n"+
        "entre "+equipoLocal.getNombre()+" y "+equipoVisitante.getNombre()+"\n"+
        "------------------------------------------------------------------------------------------\n");
        sb.append("Competición: "+liga+" Fase:"+categoria+"\n"+
        "Grupo: "+null+" Mesa: "+mesa+" Categoría: "+categoria+"\n"+
        "------------------------------------------------------------------------------------------\n");
        sb.append("Delegado local: "+delegadoLocal+" Delegado visitante: "+delegadoVisitante+"\n"+
        "Entrenador local: "+entrenadorLocal+" Entrenador visitante: "+entrenadorVisitante+"\n"+
        "Arbitro Sr. "+arbitro.getNombre()+"\n"+
        "------------------------------------------------------------------------------------------\n");

        for(int cont = 0;cont < 7;cont++){
            sb.append("\n Resultados "+(cont+1)+": ");
            for(int cont2 = 0;cont2 < 5;cont2++){
                if(cont2==4){
                    sb.append(results[cont][cont2]);
                }else{
                    sb.append(results[cont][cont2]+" - ");
                }
            }
        }
        return sb.toString();
    }
}

